如何理解《2020年大数据白皮书》的大数据技术最新发展趋势?
信通院发布的《大数据白皮书2020》(以下简称白皮书,来源:中国信息通信研究院,关注本公众号后,后台回复“big2020”获得PDF),提供了一张非常全面的大数据技术体系图谱,见下图,关于这张图的解读可以阅读文章《万字长文解读最新最全的大数据技术体系图谱!》。
《白皮书》除了对大数据技术做了全景解析,还给出了大数据技术发展的最新趋势判断,包括存算分离、数据分析能力服务化、数据管理自动化智能化、图分析及隐私计算五个方面,笔者读来很有收获,就把这篇读书笔记分享给你吧。
一、基础技术:存算分离
大数据技术自诞生以来沿袭着Hadoop或MPP的分布式框架,利用可扩展的特性通过资源的水平扩展来适应更大的数据量和更高的计算需求,并形成了具备存储计算处理分析等能力的完整平台。
以往,为了应对网络速度不足、数据在各节点间交换时间较长的问题,大数据分布式框架设计采用存储与计算耦合,使数据在自身存储的节点上完成计算,以降低交互,也就是“计算跟着数据走”。
这种存储与计算耦合的架构必然会造成额外的成本,实际业务中对于数据存储与计算能力的要求是不断变化且各自独立的,当两者其一出现瓶颈时,资源的横向扩展必然导致存储或计算能力的冗余。
自己刚接触hadoop的时候,曾经向hadoop平台提交CPU的扩容申请,平台就会跟你讲只要申请多少存储就可以了,因为存储和CPU是硬捆绑的,当时就觉得难以理解,因为我根本不需要存储啊。
“计算跟着数据走”的结果就是只要hadoop要扩容节点,就需要进行大量的数据迁移才能保证扩容节点的资源得以有效利用,因为新扩节点的计算资源只能访问本地的存储,是无法为其他节点所用的,需要将其他节点上的数据迁移一部分过来才能发挥作用。
虽然hadoop或MPP都是分布式系统,但资源扩容并不是所见即所得的,让一个加急取数(比如大老板)能以普通取数几倍甚至几十倍的速度完成,对于当前的数据仓库架构来讲基本是不可能的。
hadoop当然可以将存量的计算队列挪到加急任务上来,但这是以牺牲存量队列涉及的所有任务的执行效率为代价的,调整的影响面就太大了。
存算分离是将存储和计算两个数据生命周期中的关键环节剥离开,形成两个独立的资源集合,这两个资源集合之间互不干涉但又通力协作。每个集合内部充分体现资源的规模聚集效应,使得单位资源的成本尽量减少,同时兼具充分的的弹性以供横向扩展。当两类资源之一紧缺或富裕时,只需对该类资源进行获取或回收。
当前阿里、华为等都提供了存算分离的解决方案,这里以阿里云EMR+OSS存算分离解决方案为例说明:
E-MapReduce(EMR)构建于云服务器ECS(云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务)上,基于开源的Apache Hadoop和Apache Spark,可以方便地使用Hadoop和Spark生态系统中的其他周边系统(例如,Apache Hive、Apache Pig和HBase等)来分析和处理数据。
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。
E-MapReduce还可以与阿里云的云数据存储系统OSS进行数据传输,把二者各自优势结合起来,使存储计算分离,方便快捷搭建大数据计算环境,实现大数据分析需求。
二、基础技术:数据分析能力服务化
在存算分离理念的基础上,Serverless、云原生等概念的提出进一步助力处理分析等各项能力的服务化。通过存算分离的深入以及容器化等技术的应用,Serverless概念的落实从简单的计算函数向着更丰富的处理分析能力发展,通过预选实现的形式将特定的数据处理、通用计算、复杂分析能力形成服务、以供按需调用。
注:Serverless = FaaS(函数即服务) + BaaS(后端即服务),并不能按字面上理解为无服务器,而是说对应用开发者而言,不再需要操心大部分跟服务器相关的事务,比如服务器选购、应用运行环境配置、负载均衡、日志搜集、系统监控等,这些事情统统交给Serverless平台即可,应用开发者唯一需要做的就是编写应用代码,实现业务逻辑
由此,数据的分析处理等能力摆脱了对于完整平台和工具的需求、大大降低开发周期,节省开发成本,同时服务应用由提供方运维,实现按需付费,消除了复杂的运维过程和相应的成本。
国外最出名的是Snowflake公司,其提出了数据仓库服务化,将分析能力以云服务的形式在AWS、Azure等云平台上提供按次计费的服务,成为云原生数据仓库的代表。
以下关于Snowflake的介绍引自知乎《如何评价snowflake这家公司,发展前景如何?》波太金的文章(网址:https://www.zhihu.com/question/421570074)。
Snowflake从2016年的那篇划时代的论文《The Snowflake Elastic Data Warehouse》开始,让云OLAP进入了一个新的时代:
1、AWS的EC2和S3已经很好了,要做一个完全云原生的系统。
2、现在主流的是Share Nothing的数据仓库架构(MPP、Hadoop等),这个架构主要的问题就是计算和存储没有分离,导致集群扩容要重新分配数据,不易Shut off不用的计算资源。
3、Snowflake要在Share Disk的基础上做一个计算和存储完全分离的架构,称作Multi Cluster,Share Data Architecture,这个新架构有不少好处。
(1)Share Disk是个老概念,原来的瓶颈是计算资源加多了后,会争抢Disk资源,Snowflake根据调用频次给数据做了多备份和缓存,减少了摩擦成本
(2)在这个体系里,计算和存储是双弹性的,大的查询可以从计算层调用非常大的资源
(3)Snowflake将计算层划分除了不同的Virtual Warehouse,而且分成不同的级别,就像“S/M/L/XL不同的T-shirt,客户公司里不同高矮胖瘦的人都可以选到合身的”
4、相比Teradata等On-Premise的数据仓库,Snowflake比其他的云OLAP更好。
(1)性能快,十倍级别的快,这是部署方式的问题,是云调度能力和弹性带来的高利用率
(2)好拓展,所有的ON-Premise数据仓库用到后面都越用越慢,供需错配在任何行业都是个难题,更何况交给企业数据部门这样一个成本中心来做,发起预算配置新的机器都是漫长的过程
(3)可以让大数据量用128 Server跑,让小数据量需求用2 Server跑,然后再按计算量*时长计费,这不是定价模式的改变,而是技术架构决定了这样的定价模式是合理的
(4)数据仓库通常是PaaS产品,但标准化的Snowflake做成了SaaS产品
当前大多数数据仓库引擎,都没法满足“让一张急用给老板汇报的超大数据Dashboard”比它普通需求”能够效率快得多的完成。做过BI的人应该都有这种感觉,看着进度干着急的痛苦,这个给老板的需求很急,但来不及了......,大数据平台的弹性伸缩其实是有条件的。
假如数据仓库服务化真的可行,那就意味着我未来自己不需要采购任何云端服务器,只要递交函数count(X)到云端计算就可以了,而这个函数能运行的多快取决于我能付支付多少CPU的钱,一旦计算完毕CPU也就被回收了,真正的微粒度的弹性扩缩容,当然挑战也是巨大的。
三、数据管理:自动化智能化
数据管理技术包括数据集成、元数据、数据建模、数据标准管理、数据质量管理和数据资产服务,通过汇聚盘点数据和提升数据质量,增强数据的可用性和易用性,进一步释放数据资产的价值。
目前以上技术多集成于数据管理平台,作为开展数据管理的统一工具。但是数据管理平台仍然存在自动化、智能化程度低的问题,实际使用中需要人工进行数据建模、数据标准应用、数据剖析等操作。
在基于机器学习的人工智能不断进步的情况下,将有关技术应用于数据管理平台的各项智能,以减少人力成本提高治理效率成为当下数据管理平台研发者关注的重点。
Gartner把数据管理自动化智能化叫作增强型数据管理,笔者在《如何更深刻的理解 “Gartner2020年数据与分析技术十大趋势”的内涵?》中有关专门介绍,这里就数据建模、数据标准及主数据识别谈谈我的认识。
1、数据建模
数据仓库建模中的概念模型需要对于企业的业务和数据有非常深刻的理解才能抽象出来,而通过相关算法也许能加速这个过程。
笔者对于数据建模的自动化持怀疑态度,下面是我脑补的一个案例,不知道是否是可行的。
LDA是一种非监督机器学习技术,可以用来识别大规模文档集或语料库中的潜在隐藏的主题信息。该方法假设每个词是由背后的一个潜在隐藏的主题中抽取出来。
比如新闻报道这个文档会出现“科比”、“湖人”等等关键词,我们基于LDA就能从这些新闻报道中找到隐藏在单词和文档背后的主题,比如体育。
如果我们将原始业务系统的表、字段类比于文档和单词,采用LDA就可以挖掘到相关的主题,而这些主题也许就是我们要找的概念模型。
2、数据标准
数据标准往往只有内嵌到生产流程中才能真正落地,数据开发管理平台的普及使得数据标准的智能化应用成为可能。
基于业务含义、数据特征、数据关系等维度的相似度判断,在数据建模时进行实时智能的数据标准内容的匹配,不仅可以提升数据建模的规范化水平,也能推进数据标准的普及。
3、主数据识别
主数据(MD Master Data)是指系统间的共享数据,是在企业整个价值链上被重复、共享应用于多个业务活动的高价值的数据,是各业务应用和各系统之间进行信息交互的基础。
原来主数据的识别主要依赖于业务和数据人员的经验,但考虑到主数据跨系统等特点,现在其实可以采取更为智能化的手段来提升主数据识别的效率。
比如主数据一般具有数据共享度高(意味着跨业务、平台和用户)、数据稳定性强(生命周期长,频率变动低)、数据标准化水平高(具有一定的唯一性),实体独立性强(数据结构稳定)等特点,通过构建一系列的指标,确定各指标权重并构建评分体系,就可以较为高效的识别出可能的主数据。
自动化、智能化的数据管理技术还可以应用于数据探索、自动化标签识别、数据去冗余等各个方面,在数据资产管理概念火热,各项工作备受重视的当下,市场上的数据管理平台也在不断演进。
四、数据分析应用:图分析引导数据分析新方向
社会的一个本质特征就是连接,随着5G、物联网的发展,万物互联是必然的趋势,基于连接的大数据分析将是未来我们洞察世界、洞察社会,洞察用户的有效手段。
以社交网络、用户行为、网页链接关系等为代表的连接数据,往往需要通过“图”的形态以最原始、最直观的方式展现其关联性。在图的形式下,自然而然地存在着连通性,中心度、社区关系等一系列内蕴的关联关系,这类依赖于图结构本身进行挖掘分析的需求难以通过分类、聚类、回归和频繁模式挖掘等传统数据分析方法进行实现,需要能够对于图结构本身进行存储、计算、分析挖掘的技术合力完成。
图分析是专门针对图结构数据进行关联关系挖掘分析的一类分析技术,其中以对图模型数据进行存储和查询的图数据库、对图模型数据应用图分析算法的图计算引擎、对图模型数据进行抽象以研究展示实体间关系的知识图谱三项技术为主。
图分析不仅在互联网公司,现在也影响到了很多传统行业,比如笔者的大数据团队至少同时进行着五个方面的图应用探索实践,包括基于图数据库的元数据管理、基于图的供应链流程分析,基于图的客户标签体系构建,基于图的交通规划分析以及知识图谱构建等等。
五、数据安全流通:隐私计算技术
早在1982年,姚期智先生在其发表的文章《安全计算协议》(Protocols for Secure Computation)里提出了著名的姚氏百万富翁问题,同时也首次引入了双方安全计算的概念来解决问题,并对其可行性进行了验证。两个百万富翁Alice和Bob在无任何可信第三方,同时不暴露自己的财产的情况下,希望得出谁更富有的结论。
为了解决这一问题,姚期智先生提出建立一个通用的框架处理单向函数所涉及的加密、完整性、智能扑克等系列问题,发展出了验证其安全性的通用技术。多方安全计算能够同时确保输入的隐私性和计算的正确性,在无可信第三方的前提下通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结果,这就是“可用不可见”。
要理解隐私计算需要强大的密码学知识,笔者这里列一下隐私计算涉及的几个关键技术,看看它到到底要解决什么问题:
秘密共享:是在一个常被应用在多方安全签名的技术,它主要用于保护重要信息被丢失、或篡改。通过秘密共享机制,秘密信息会被拆分,每个参与者仅持有该秘密的一部分,个人持有部分碎片无法用于恢复秘密,需要凑齐预定数量 (或门限) 的碎片。
不经意传输:消息发送者从一些待发送的消息中发送一条给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),这个协议也叫茫然传输协议。举例来说,Alice 手上有两组密封的密码组合,Bob 只能获得一组密码且 Bob 希望 Alice 不知道他选择哪一组密码。这时候就能利用不经意传输来完成交易,也就是说,我从你那里需要拿些数据,但我不希望你知道我拿了具体哪些数据,这在ID匹配等商业场景上有很大的应用价值。
混淆电路:混淆电路是一种密码学协议,遵照这个协议,两个参与方能在互相不知晓对方数据的情况下计算某一函数。
为什么国内隐私计算现在这么火?
我想主要有三个原因,一是政府将数据纳入生产要素,提出数据要素市场化配置战略;二是大环境条件逐渐完善,数据联合建模商业化需求提升;三是法规合规逐渐严格,也是为将来数据的“可用不可见”来做技术储备,这才有了隐私计算之火的重新燃起。
无论是金融还是自己所在的通信行业都在大力推进隐私计算的商业化应用,在某些方面已经取得了实质性进展,未来可期。
最后说下我对于存算分离、数据仓库服务化、数据管理自动化智能化、图分析及隐私计算五个技术的态度。
首先,存算分离、数据仓库服务化的技术成熟度还不够,我抱着谨慎乐观的态度,普及尚需时日。
再次,数据管理智能化、自动化和图分析技术挑战不大,关键是企业要找到合适的应用场景,图分析已经进入了快车道。
最后,隐私计算技术将不会是问题,应用场景也不是问题,但政策、机制和流程是个大问题,要看多方的决心。